import request from '@/utils/request';

const API_PREFIX = '/admin/articles';

/**
 * 获取文章列表
 * @param {Object} params 查询参数
 * @returns {Promise} Promise对象
 */
export function getArticleList(params) {
  return request({
    url: `${API_PREFIX}/list`,
    method: 'get',
    params
  });
}

/**
 * 获取文章详情
 * @param {Number|String} id 文章ID
 * @returns {Promise} Promise对象
 */
export function getArticleDetail(id) {
  return request({
    url: `${API_PREFIX}/detail/${id}`,
    method: 'get'
  });
}

/**
 * 创建文章
 * @param {Object} data 文章数据
 * @returns {Promise} Promise对象
 */
export function createArticle(data) {
  return request({
    url: `${API_PREFIX}/create`,
    method: 'post',
    data
  });
}

/**
 * 更新文章
 * @param {Number|String} id 文章ID
 * @param {Object} data 文章数据
 * @returns {Promise} Promise对象
 */
export function updateArticle(id, data) {
  return request({
    url: `${API_PREFIX}/update/${id}`,
    method: 'put',
    data
  });
}

/**
 * 删除文章
 * @param {Number|String} id 文章ID
 * @returns {Promise} Promise对象
 */
export function deleteArticle(id) {
  return request({
    url: `${API_PREFIX}/delete/${id}`,
    method: 'delete'
  });
}

/**
 * 获取文章分类列表
 * @returns {Promise} Promise对象
 */
export function getArticleCategories() {
  return request({
    url: `${API_PREFIX}/categories`,
    method: 'get'
  });
}

/**
 * 创建文章分类
 * @param {Object} data 分类数据
 * @returns {Promise} Promise对象
 */
export function createArticleCategory(data) {
  return request({
    url: `${API_PREFIX}/categories/create`,
    method: 'post',
    data
  });
}

/**
 * 更新文章分类
 * @param {Number|String} id 分类ID
 * @param {Object} data 分类数据
 * @returns {Promise} Promise对象
 */
export function updateArticleCategory(id, data) {
  return request({
    url: `${API_PREFIX}/categories/update/${id}`,
    method: 'put',
    data
  });
}

/**
 * 删除文章分类
 * @param {Number|String} id 分类ID
 * @returns {Promise} Promise对象
 */
export function deleteArticleCategory(id) {
  return request({
    url: `${API_PREFIX}/categories/delete/${id}`,
    method: 'delete'
  });
}

/**
 * 获取所有标签
 * @returns {Promise} Promise对象
 */
export function getAllTags() {
  return request({
    url: `${API_PREFIX}/tags`,
    method: 'get'
  });
}

/**
 * 上传文章封面图片
 * @param {FormData} formData 包含图片文件的表单数据
 * @returns {Promise} Promise对象
 */
export function uploadArticleImage(formData) {
  return request({
    url: '/upload/image',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
} 